# Pandas数据分析
import os

import pandas as pd
import numpy as np
from pyCharts import pyCharts


# pandas 数据分析
class pandasData:
    def __init__(self):
        pass

    # 将天气信息转换为DataFrame
    @staticmethod
    def getDataFrameByWeather(avg_data_per_city, name):

        month_list = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月',
                      '十二月']
        city_list = []
        year = avg_data_per_city[0][1]
        avg_temperature = []
        for city in avg_data_per_city:
            city_list.append(city[0])
            avg_temperature.append(city[2:])

        df = pd.DataFrame(avg_temperature, columns=month_list, index=city_list)
        if not os.path.exists('Excel'):
            os.makedirs('Excel')
        df.to_excel(f'Excel\\{year}年各城市每月{name}气温.xlsx')

    # 分析未来天气评分数据
    @staticmethod
    def analyze_weather_data(weather_data):

        # 分析天气数据列表，返回日期和对应分数的字典
        # 生成表格
        # 日期列表为今天往后加16天
        date_list = pd.date_range(start=pd.Timestamp.today().normalize(), periods=16).strftime('%Y-%m-%d').tolist()
        df = pd.DataFrame(weather_data, index=date_list)
        df = df.T

        if not os.path.exists('Excel'):
            os.makedirs('Excel')
        df.to_excel('Excel\\各个城市未来天气评分.xlsx')

        # 生成 3D 图表
        pyCharts().get_future_weather_chart(df)
